Not quite sub-400 - oh well!

The input has 5 bits, and the output has a left metal and a right metal.
The encoding works like this:

Start with Tin-Tin, which is the all-salts output.

If the right-most bit is fire, then the right metal starts as Lead instead.
If the middle-bit is fire, then the left metal starts as Lead instead.

If the middle-right bit is fire, then we will do two projections. Normally, this will project the left metal once and the right metal once. The exception is if we currently have Lead-Lead - in this case, we "hiccup" the projections so both go to the left metal. This prevents "**🜂🜂🜂" from mapping to the same output as "**🜔🜔🜔".

If the leftmost bit is fire, then the right metal gets 3 projections.
If the middle-left bit is fire, then the left metal gets 3 projections.

Nice and simple, I think!

Purification is used so the solve isn't limited by quicksilver so much. Additionally, blocking the lead input is a little faster than wanding lead around, so that's why the all-salts state is Tin-Tin instead of Lead-Lead.



===== ENCODING =====
 0.	🜔🜔🜔🜔🜔	 => 	Tin-Tin
 1.	🜔🜔🜔🜔🜂	 => 	Tin-Lead
 2.	🜔🜔🜔🜂🜔	 => 	Iron-Iron
 3.	🜔🜔🜔🜂🜂	 => 	Iron-Tin
 4.	🜔🜔🜂🜔🜔	 => 	Lead-Tin
 5.	🜔🜔🜂🜔🜂	 => 	Lead-Lead
 6.	🜔🜔🜂🜂🜔	 => 	Tin-Iron
 7.	🜔🜔🜂🜂🜂	 => 	Iron-Lead
 8.	🜔🜂🜔🜔🜔	 => 	Silver-Tin
 9.	🜔🜂🜔🜔🜂	 => 	Silver-Lead
10.	🜔🜂🜔🜂🜔	 => 	Gold-Iron
11.	🜔🜂🜔🜂🜂	 => 	Gold-Tin
12.	🜔🜂🜂🜔🜔	 => 	Copper-Tin
13.	🜔🜂🜂🜔🜂	 => 	Copper-Lead
14.	🜔🜂🜂🜂🜔	 => 	Silver-Iron
15.	🜔🜂🜂🜂🜂	 => 	Gold-Lead
16.	🜂🜔🜔🜔🜔	 => 	Tin-Silver
17.	🜂🜔🜔🜔🜂	 => 	Tin-Copper
18.	🜂🜔🜔🜂🜔	 => 	Iron-Gold
19.	🜂🜔🜔🜂🜂	 => 	Iron-Silver
20.	🜂🜔🜂🜔🜔	 => 	Lead-Silver
21.	🜂🜔🜂🜔🜂	 => 	Lead-Copper
22.	🜂🜔🜂🜂🜔	 => 	Tin-Gold
23.	🜂🜔🜂🜂🜂	 => 	Iron-Copper
24.	🜂🜂🜔🜔🜔	 => 	Silver-Silver
25.	🜂🜂🜔🜔🜂	 => 	Silver-Copper
26.	🜂🜂🜔🜂🜔	 => 	Gold-Gold
27.	🜂🜂🜔🜂🜂	 => 	Gold-Silver
28.	🜂🜂🜂🜔🜔	 => 	Copper-Silver
29.	🜂🜂🜂🜔🜂	 => 	Copper-Copper
30.	🜂🜂🜂🜂🜔	 => 	Silver-Gold
31.	🜂🜂🜂🜂🜂	 => 	Gold-Copper